/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package client1;

import java.net.Socket;
import java.io.*;

public class Leitor {

    public static void main(String[] args) {

        Socket s = null;
        DataInputStream in;
        DataOutputStream out;

        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

        boolean continua = true;
        int contador = 0;
        int porta = 10000;
        String nome = args[0];
        String mensagem = "";
        String msg = "";
        int totalMensagens = 0;

        /* negociação dos parâmetros da conexão */
        try {
             s = new Socket("127.0.0.1",10002);
             porta = s.getLocalPort();
             s.close();
        } catch (IOException e) {
        }

        /* tráfego de dados */

        try {
            s = new Socket("127.0.0.1", porta);
            in = new DataInputStream(s.getInputStream());
            out = new DataOutputStream(s.getOutputStream());

            out.writeUTF("SYN/Leitor");
            out.writeUTF("ME:" + nome);
            
            while (!msg.contains("#")){


            mensagem = in.readUTF();

            if (mensagem.contains("NUMARQ:")) {
                String[] partes = mensagem.split(":");
                totalMensagens = Integer.parseInt(partes[1]);
                }

            System.out.println("Total de mensagens: " + totalMensagens);

            int i = 0;
            while ( i < totalMensagens ){
                mensagem = in.readUTF();
                System.out.println(mensagem);
                i++;
            }

            try{
                msg = reader.readLine();
                } catch (IOException e) {
                }
            
            if (msg.contains("#")){
                out.writeUTF(msg+"bye");

                in.close();
                out.close();
                s.close();
            }
            }


        } catch (IOException e) {

            System.out.println("Algum problema ocorreu ao criar ou enviar dados pelo socket.");
            System.out.println(e.toString());

        }
    }
}

